The present invention relates to telecommunications systems. More particularly, the present invention provides a system for transmitting information using a TCP connection over a satellite for use in a wide area network of computers such as the Internet. The present system provides a high speed and quality transmission of signals to a distant location over a satellite system using an Xpress Transport Protocol (herein xe2x80x9cXTPxe2x80x9d) protocol, for example. But it will be recognized that the invention has a much wider range of applicability; it can also be applied to a private bridged network, terrestrial wireless network links, and the like.
The Internet is an international xe2x80x9csuper-networkxe2x80x9d connecting together millions of individual computer networks and computers. The Internet is generally not a single entity. It is an extremely diffuse and complex system over which no single entity has complete authority or control. Although the Internet is widely known for one of its ways of presenting information through the World Wide Web (herein xe2x80x9cWebxe2x80x9d), there are many other services currently available based upon the general Internet protocols and infrastructure.
The Web is generally easy to use for people inexperienced with computers. Information on the Web can be presented on xe2x80x9cpagesxe2x80x9d of graphics and text that contain xe2x80x9clinksxe2x80x9d to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a xe2x80x9cbrowserxe2x80x9d program such as one made by Netscape Communications Corporation of Mountain View, Calif. or Microsoft Corporation of Redmond, Wash. Browser programs process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
The Internet supports many other forms of communication, For example, the Internet allows one-to-one communication via electronic mail, which is commonly known as xe2x80x9ce-mail.xe2x80x9d The Internet also has xe2x80x9cbulletin boardsxe2x80x9d which are used by users to post colorful text and graphics for others to read and respond to. For real time communication, the Internet has xe2x80x9cchat roomsxe2x80x9d and the like, which allow users to communicate to each other by way of typed messages. In some cases, the Internet can also be used for voice communication between users. All of these forms of communication are possible, at least in part, by way of an important connection, which allows information to be transmitted from many different servers on the Internet.
The Internet is based on the TCP/IP protocol suite. At the network layer, an Internet Protocol, which is known as IP, provides a mechanism to deliver packets addressed to individual computers. The Internet has a plurality of computer systems implementing IP, which are generally interconnected to each other using local area networks and dedicated transmission lines to form a wide area network of computers. IP packets are delivered on a best effort basis and are not guaranteed to arrive at their intended destination, which is known as xe2x80x9cunreliablexe2x80x9d service.
For many applications that require reliable data delivery service, the Internet uses a connection mechanism called Transmission Control Protocol, which is known as TCP. TCP has a variety of desirable characteristics that allows it to be suitable for communication over the Internet. For example, TCP considers the data size or best sized segment of data to send from a transmitting server over the communication medium to a receiving server. Additionally, TCP maintains a timer, which waits for the receiving server to send an acknowledgment of the reception of the data segment from the transmitting server. If the timer times out before the acknowledgment is received, TCP resends the data segment, which provides reliability in the communication. TCP also maintains a checksum on its header and data, which monitors any modification in the data in transit. If the data arrives with an invalid checksum, TCP discards the data and does not acknowledge receiving the data. If data segments arrive out of order, TCP can also recombine the segments in order at the receiving server. Furthermore, TCP provides flow control, which only allows a finite amount of data to be sent to a buffer on the receiving server. This prevents a fast server computer from overflowing all the buffers on a slower server computer.
Although TCP has been well suited for transmitting Internet data between a plurality of servers, which are coupled to each other by way of conventional telephone systems and lines with similar characteristics, TCP has many limitations. For example, TCP is suitable for xe2x80x9cshort hopsxe2x80x9d but often slows down communication over extremely long distances which can have significant latency (e.g., transcontinental hops via satellite). Here, the flow control and acknowledgment features take too long to send and receive, which make communication slow. Additionally, opportunities for gains in efficiency still exist. In particular, TCP has been found to be slow and cumbersome for transmission of Internet data over a satellite network, for example. Additionally, networking using satellites often encounters significant bit error rates, which leads to further slowing of TCP connections. These and other limitations will be more fully described according to the Figs. below.
From the above, it is seen that a more efficient way of transporting Internet services over large geographical regions using wireless communication media is highly desirable.
According to the present invention, a technique for improving TCP performance over a wireless wide area network is provided. In an exemplary embodiment, the present invention provides a system for converting information using a TCP connection to an Xpress Transport Protocol (herein xe2x80x9cXTPxe2x80x9d) connection, for example, which is more suitable for transmission over a wireless network such as a satellite.
In a specific embodiment, the present invention provides a communication system for transmitting information over a satellite link. The system includes a first gateway having code for providing a bidirectional flow of information, which has data and a header, the first gateway being coupled to a TCP connection. As merely an example, the bidirectional flow of information can be from the Internet or internet-like network of computers or any network using TCP/IP protocols. The system also includes code for converting the information from the TCP protocol into a satellite protocol for transmission over a satellite link The system also includes a second gateway for receiving the information from the first gateway over a satellite link. The second gateway can include code for converting the information from a satellite protocol, that has suitable characteristics for transmission over a satellite link, to a TCP protocol. The satellite protocol can include, among others, XTP, XTP-like protocols, and the like.
In an alternative embodiment, the present invention provides a communication system capable of establishing a plurality of connections for transmission of information using a TCP connection over a satellite link. The system includes code for intercepting a first communication connection between a first client (e.g., user computer) to a first satellite gateway. The system also includes code for forming a second communication connection between the first satellite gateway to a second satellite gateway that is over a satellite link. Information describing characteristics (e.g., source and destination IP addresses and port numbers) of the first connection is transmitted to the second satellite gateway. A third communication connection is formed between the second satellite gateway and the destination server. A combination of these connections forms a transparent connection from the original first client to the destination server.
In another aspect of the present invention, techniques for matching a data rate for information flowing through a predetermined point in a network, such as a satellite, to the data rate capabilities of a remote point on the network are provided. In one embodiment, the present invention provides rate control to maintain a suitable or predetermined data rate over the satellite device. The rate control provides a plurality of queues for buffering incoming data. Incoming data are checked against a predetermined length. Data in excess of the predetermined length are stored in the queues. At predetermined intervals, information is taken from one or more queues and transmitted along the outgoing data path. This processing can enable systems according to the present invention to provide for data rate control across a particular point of interest along the network, such as a satellite link.
Numerous benefits are achieved by way of the present invention over conventional techniques. In a specific embodiment, the present invention provides a higher throughput than conventional systems. Additionally, the present invention provides for a way to transparently improve TCP performance over a satellite network. In other embodiments, the present invention provides for a novel protocol which is suitable for long latency, high loss, asymmetric bandwidth conditions, which are typical of satellite communications. The present invention also provides for relatively easy interface with a conventional satellite system. Depending upon the embodiment, one or more of these benefits can be present. These and other advantages or benefits are described throughout the present specification and are described more particularly below.